Skip to content

Let runner implement the engine ABI for the engine worker. - #2118

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/944563827
Open

copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/944563827

Conversation

@copybara-service

@copybara-service copybara-service Bot commented Jul 8, 2026 •

Copy link
Copy Markdown
Contributor

Let runner implement the engine ABI for the engine worker.

This consolidates the duplicated controller interaction in runner and engine worker.
There is some unique interaction left in the runner:

  • Dumping serailized FuzzTest config.

    Needed so that one can pass the fuzzing options to the test binary command when directly using the controller. But this uses C++-based struct. We should either drop this or make it dump controller options as strings, as part of the engine ABI.

  • Notifying the absense of custom mutator to use the controller's builtin mutator.

    Technically the runner has its own mutator for LLVMFuzzerMutate, but it's using the legacy ByteArrayMutator for minimal dependency, while the controller has the FuzzTest-based mutator. This should not be a problem once we remove the legacy support in runner (and let legacy fuzzers use the FuzzTest LLVM fuzzer wrapper instead)

Also, move fork server to the engine worker because we need to make sure that fork server starts before handling persistent mode.

@copybara-service
copybara-service Bot force-pushed the cl/944563827 branch 14 times, most recently from c9460a2 to 93f5d00 Compare July 10, 2026 13:29
@copybara-service
copybara-service Bot force-pushed the cl/944563827 branch 15 times, most recently from c0be67d to 479bc89 Compare September 10, 2026 18:31
@copybara-service copybara-service Bot changed the title No public description Let runner implement the engine ABI for the engine worker. Sep 18, 2026
@copybara-service
copybara-service Bot force-pushed the cl/944563827 branch 5 times, most recently from ec99d2b to 039218b Compare September 24, 2026 15:06
This consolidates the duplicated controller interaction in runner and engine worker.
There is some unique interaction left in the runner:

  - Dumping serailized FuzzTest config.

    Needed so that one can pass the fuzzing options to the test binary command when directly using the controller. But this uses C++-based struct. We should either drop this or make it dump controller options as strings, as part of the engine ABI.

  - Notifying the absense of custom mutator to use the controller's builtin mutator.

    Technically the runner has its own mutator for LLVMFuzzerMutate, but it's using the legacy ByteArrayMutator for minimal dependency, while the controller has the FuzzTest-based mutator. This should not be a problem once we remove the legacy support in runner (and let legacy fuzzers use the FuzzTest LLVM fuzzer wrapper instead)

Also, move fork server to the engine worker because we need to make sure that fork server starts before handling persistent mode.

PiperOrigin-RevId: 944563827

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant